//*********************************************************
//
//    Copyright (c) Microsoft. All rights reserved.
//    This code is licensed under the Apache License, Version 2.0.
//    THIS CODE IS PROVIDED *AS IS* WITHOUT WARRANTY OF
//    ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING ANY
//    IMPLIED WARRANTIES OF FITNESS FOR A PARTICULAR
//    PURPOSE, MERCHANTABILITY, OR NON-INFRINGEMENT.
//
//*********************************************************

namespace WorkflowApplication.Interfaces
{
    using System.Windows.Controls;
    using WorkflowApplicationModels;
    using WorkflowApplicationModels.Helpers;

    /// <summary>
    /// The left pane presenters' interface.
    /// </summary>
    public interface ILeftPanePresenter
    {
        /// <summary>
        /// Gets or sets the left pane.
        /// </summary>
        /// <value>The left pane.</value>
        UserControl LeftPane { get; set; }

        /// <summary>
        /// Gets or sets the item selected command.
        /// </summary>
        /// <value>The item selected command.</value>
        WorkflowAppCommand<BaseModel> ItemSelectedCommand { get; set; }

        /// <summary>
        /// Initializes this instance.
        /// </summary>
        void Initialize();

        /// <summary>
        /// Refreshes this instance.
        /// </summary>
        /// <param name="currentModel">
        /// The current model selected.
        /// </param>
        bool Refresh(WorkflowModel currentModel);
    }
}
